<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script type="text/javascript">
      /* 
        内建对象
        宿主对象
        自定义对象

        数组(Array)
          - 数组也是一个对象
          - 它和我们普通对象功能类似,也是用来存储一些值的
          - 不同的是普通对象是使用字符串作为属性名的,
              而数组是使用数字作为索引操作元素的
          
          - 索引:
              从0开始的整数就是索引

          - 数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据
      */

      var obj = new Object();
      obj.name = 'sunwukong';

      //创建数组对象
      var arr = new Array();
      //使用typeof 检查一个数组,会返回Object
      console.log(typeof arr);

      /* 
        向数组中添加元素
          语法: 数组[索引] = 值
      */
      arr[0] = 10;
      arr[1] = 88;
      arr[2] = 22;
      arr[3] = 44;
      arr[10] = 31;
      arr[100] = 90;

      /* 
        读取数组中的元素:
          语法: 数组[索引]
            如果读取不存在的索引,他不会报错而是会返回undefined
      */
      console.log(arr[2]);

      /* 
        获取数组的长度
          可以使用length属性来获取数组的长度(元素的个数)
          语法: 数组.length

          对于连续的数组,使用length可以获取到数组的长度(元素的个数)
          对于非连续的数组,使用length或获取到数组的最大的索引+1
              尽量不要创建非连续的数组
      */
      console.log(arr.length);
      console.log(arr);

      /* 
        修改length
          如果修改的length大于原长度,则多出部分空出来
          如果修改的length小于原长度,则多出的元素会被删除。

      */

      // arr.length = 10;
      // arr.length = 3;
      // console.log(arr.length);
      // console.log(arr);

      //向数组的最后一个位置添加元素
      arr[arr.length] = 70;
      console.log(arr);
    </script>
  </head>
  <body></body>
</html>
